struct v3f64_t {
double x,y,z;
};
struct header_t {
u8 cmd;
u32 tick;
u8 slot;
};
struct cmd_header_t {
s64 flags;
v3f64_t ang[6];
s32 inseq, outseq;
u32 data_len;
};
struct varint_t {
u8 a;
if (a & 0x80) {
u8 b;
if (b & 0x80) {
u8 c;
}
}
};
fn varint_parse(varint_t vi) {
u32 value = 0;
value += vi.a & 0x7F;
if (vi.a & 0x80) {
value += (vi.b & 0x7f) << 7;
if (vi.b & 0x80) {
value += (vi.c & 0x7f) << 14;
}
}
return value;
};
struct protomsg_t {
u8 msg;
if (msg != 9) {
//u8 capture[124];
}
varint_t len;
u8 data[varint_parse(len)];
};
struct foo_int_t {
};
struct foo_t {
header_t header;
if (header.cmd == 1) {
cmd_header_t cmd_header;
u8 data[cmd_header.data_len];
}
if (header.cmd == 6) {
u32 data_len;
protomsg_t proto_msgs[490];
u8 dataless[data_len - sizeof(proto_msgs)];
}
};
foo_t bar[4] @ 0x0;